/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dominio.Controladores;

import Dominio.NoEstaNoticiaException;
import Dominio.NoEstaTemaException;
import Dominio.NoticiaClasificada;
import Dominio.PalabraParaAnadir;
import Dominio.Tema;
import java.util.Vector;

/**
 *
 * @author sandra
 */
public class CtrlConsultas {

    CtrlDominio CD = CtrlDominio.getInstance();

    public CtrlConsultas() {
    }

    public Vector<String> listarNoticasTema(String tema) throws NoEstaTemaException {
        Vector<String> noticias = new Vector<String>(0, 1);
        Tema t = CD.getTema(tema);
        for (NoticiaClasificada nc : t.getNoticiasClasificadas()) {
            noticias.add(nc.getTitulo());
        }
        return noticias;
    }

    public Vector<String> listarTemaNoticia(String noticia) throws NoEstaNoticiaException {
        Vector<String> tema = new Vector<String>(0, 1);
        NoticiaClasificada nc = CD.getNoticiaClasificada(noticia);
        for (Tema t : nc.getTemas()) {
            tema.add(t.getNombre());
        }
        return tema;
    }

    public Vector<String> listarTemas() {
        Vector<String> temas = new Vector<String>(0, 1);
        for (Tema t : CD.getTemas()) {
            temas.add(t.getNombre());
        }
        return temas;
    }

    public Vector<String> listarNoticias() {
        Vector<String> noticias = new Vector<String>(0, 1);
        for (NoticiaClasificada nc : CD.getNoticias()) {
            noticias.add(nc.getTitulo());
        }
        return noticias;
    }

    public Vector<String> listarPalabrasNoticia(String noticia) throws NoEstaNoticiaException {
        Vector<String> palabras = new Vector<String>(0, 1);
        NoticiaClasificada nc = CD.getNoticiaClasificada(noticia);
        for (PalabraParaAnadir p : nc.getPalabras()) {
            palabras.add(p.getValor());
        }
        return palabras;
    }

    public Vector<String> listarPalabras() {
        int tam = CD.getTotalPalabras();
        Vector<String> palabras = new Vector<String>();
        for (int i = 1; i < tam + 1; i++) {
            palabras.add(CD.consultarPalabra(i).getValor());
        }
        return palabras;
    }
    
    public boolean estaTemaDiccionario(String tema){
        return CD.estaTema(tema);
    }
     public Vector<String> listarTemaPalabra(String palabra) {
        int id = CD.existPalabra(palabra);
        PalabraParaAnadir p = (PalabraParaAnadir) CD.consultarPalabra(id);
        Vector<String> temas = new Vector<String>();
        for (Tema t : p.getTemas()) {
            temas.add(t.getNombre());
        }
        return temas;
    }
}
